package com.cqut.service;

import java.util.List;
import java.util.Map;

import com.cqut.dto.LimitShowDTO;
import com.cqut.dto.NoticeManagerDTO;
import com.cqut.model.NoticeManager;
import com.cqut.pojo.vo.noticeInfoVO;

public interface INoticeManagerService {
    boolean save(NoticeManager noticeManager);

    boolean update(NoticeManager noticeManager);

    boolean delete(String noticeId);

    boolean batchDelete(String[] primaryKeys);

    NoticeManager findModel(String noticeId);

    NoticeManager findModel(String noticeId, String[] parameters);

    Map<String, Object> findMap(String noticeId);

    Map<String, Object> findMap(String noticeId, String[][] parameters);

    List<NoticeManager> loadModels();

    List<NoticeManager> loadModels(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<NoticeManager> loadModels(String[] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps();

    List<Map<String, Object>> loadMaps(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps(String[][] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    long count();

    long count(String condition, Object[] values);

    long count(String[] parameters, boolean isDistinct);

    long count(String[] parameters, String condition, Object[] values, boolean isDistinct);

	List<noticeInfoVO> loadNoticeList(NoticeManagerDTO noticeManagerDTO,
			LimitShowDTO limitShowDTO);

	Object findCountOfNotices(NoticeManagerDTO noticeManagerDTO);

	Map<String, Object> getNoticeById(String noticeId);

	List<Map<String, Object>> getCompetition(String userId);

	List<noticeInfoVO> loadNoticeListStates(NoticeManagerDTO noticeManagerDTO,
			LimitShowDTO limitShowDTO);

	Object findCountOfNoticesStates(NoticeManagerDTO noticeManagerDTO);

	Map<String, Object> getOnwerById(String noticeId);

	List<Map<String, Object>> loadNoticeStatesUser(String userId,
			LimitShowDTO limitShowDTO);

	Object countForNoticesStatesUser(String userId);
}
